﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ED_Nivelacion.Datos;

namespace ED_Nivelacion.Negocios
{
    public class Heteroevaluacion_C
    {

        ED_NivelacionEntities _objEntity = new ED_NivelacionEntities();

        public List<Heteroevaluacion> FiltrarHeteroevaluacion(int _idPeriodo, int _idCuestionario, int _idPregunta_Cuestionario, int _idDistribucion_Academica, int _idAlumno)
        {
            List<Heteroevaluacion> ListaHeteroevaluacion = new List<Heteroevaluacion>();
            try
            {
                foreach (var item in _objEntity.SP_ObtenerHeteroevaluacion(_idPeriodo, _idCuestionario, _idPregunta_Cuestionario, _idDistribucion_Academica, _idAlumno))
                {
                    ListaHeteroevaluacion.Add(new Heteroevaluacion { idHeteroevaluacion = item.idHeteroevaluacion, idCuestionario = item.idCuestionario, idDistribucion_Academica = item.idDistribucion_Academica, idDocente = item.idDocente, idPregunta_Cuestionario = item.idPregunta_Cuestionario, Valor = item.Valor });
                }
                return ListaHeteroevaluacion;
            }
            catch (Exception)
            {
                return ListaHeteroevaluacion;
            }
        }

        public List<Heteroevaluacion> ObtenerHeteroevaluacion(int idAlumno)
        {
            List<Heteroevaluacion> ListaHeteroevaluacion = new List<Heteroevaluacion>();
            try
            {
                foreach (var item in _objEntity.SP_ObtenerHeteroevaluacionIdA(idAlumno))
                {
                    ListaHeteroevaluacion.Add(new Heteroevaluacion { idCuestionario = item.idCuestionario, idDistribucion_Academica = item.idDistribucion_Academica, idPregunta_Cuestionario = item.idPregunta_Cuestionario, Valor = item.Valor });
                }
                return ListaHeteroevaluacion;
            }
            catch (Exception)
            {
                return ListaHeteroevaluacion;
            }
        }

        public string InsertarHeteroevaluacion(Heteroevaluacion _obj)
        {
            string msm = "OK";
            try
            {
                _objEntity.SP_InsertarHeteroevaluacion(_obj.idPregunta_Cuestionario, _obj.Valor, _obj.idDistribucion_Academica, _obj.idAlumno, _obj.idCuestionario);
            }
            catch (Exception)
            {

                msm = "Error al insertar valores";
            }

            return msm;

        }

        public string ActualizarHeteroevaluacion(Heteroevaluacion _obj)
        {
            string msm = "OK";
            try
            {
                _objEntity.SP_ActualizarHeteroevaluacion(_obj.idHeteroevaluacion, _obj.Valor);
            }
            catch (Exception)
            {

                msm = "Error al actualizar valores";
            }

            return msm;

        }


        public int contarRespuestas(int alumno, int periodo)
        {
            try
            {
                return _objEntity.SP_CountPreguntasHeteroevaluacion(periodo, alumno).First().Value;
            }
            catch (Exception)
            {

                return 0;
            }
        }
    }
}
